home *** CD-ROM | disk | FTP | other *** search
- import java.awt.Color;
- import java.awt.Event;
- import java.awt.Font;
- import java.awt.FontMetrics;
- import java.awt.Graphics;
- import java.awt.Image;
- import java.awt.Rectangle;
- import java.awt.image.PixelGrabber;
-
- public class bob98 extends bob {
- // $FF: renamed from: a java.lang.String
- private String field_0;
- // $FF: renamed from: b java.awt.Color
- private Color field_1;
- // $FF: renamed from: c boolean
- private boolean field_2 = true;
- // $FF: renamed from: d java.awt.Font
- private Font field_3;
- // $FF: renamed from: e int
- private int field_4;
- // $FF: renamed from: f int
- private int field_5;
- // $FF: renamed from: g int
- private int field_6;
- // $FF: renamed from: h java.awt.Rectangle[]
- private Rectangle[] field_7;
- // $FF: renamed from: i int[]
- private int[] field_8;
-
- private void _$211062() {
- String var1 = ((bob12)((bob)this).gd(1)).value;
- Font var2 = ((bob17)((bob)this).gd(3)).font;
- if (!var1.equals(this.field_0) || !var2.equals(this.field_3) || super.tr.width != this.field_5 || super.tr.height != this.field_6) {
- this.field_0 = var1;
- this.field_3 = var2;
- this.field_5 = super.tr.width;
- this.field_6 = super.tr.height;
- if (this.field_8 == null || this.field_8.length < this.field_5 * this.field_6) {
- this.field_8 = new int[this.field_5 * this.field_6];
- }
-
- Image var3 = super.a.createImage(this.field_5, this.field_6);
- Graphics var4 = var3.getGraphics();
- var4.setFont(this.field_3);
- FontMetrics var5 = var4.getFontMetrics(this.field_3);
- var4.setColor(Color.black);
- char[] var6 = new char[this.field_0.length()];
- int[] var7 = new int[var6.length * 2 + 10];
- this.field_0.getChars(0, var6.length, var6, 0);
- int var8 = var5.getHeight();
- int var9 = var5.getAscent();
- int var10 = 0;
- int var11 = 0;
-
- for(int var12 = 0; var12 < var6.length; ++var12) {
- boolean var13 = var5.charsWidth(var6, var10, var12 - var10 + 1) > super.tr.width;
- if (var13 && this.field_2) {
- for(int var14 = var12; var14 > var10; --var14) {
- if (var6[var14] == ' ') {
- var12 = var14 + 1;
- var14 = -2;
- }
- }
-
- var7[var11 * 2] = var10;
- var7[var11 * 2 + 1] = var12 - var10 - 1;
- var10 = var12;
- ++var11;
- } else if (var6[var12] == '\n' || var12 == var6.length - 1) {
- var7[var11 * 2] = var10;
- var7[var11 * 2 + 1] = var6[var12] == '\n' ? var12 - var10 : var12 + 1 - var10;
- var10 = var12 + 1;
- ++var11;
- }
- }
-
- this.field_4 = 0;
-
- for(int var21 = 0; var21 < var11; ++var21) {
- this.field_4 += var7[var21 * 2 + 1];
- }
-
- this.field_7 = new Rectangle[this.field_4];
- int var22 = 0;
- int var15 = 0;
- int var16 = 0;
-
- for(int var17 = 0; var17 < var11; ++var17) {
- for(int var18 = var7[2 * var17]; var18 < var7[2 * var17] + var7[2 * var17 + 1]; ++var18) {
- int var19 = var5.charWidth(var6[var18]);
- var4.drawChars(var6, var18, 1, var22, var15 + var9);
- this.field_7[var16] = new Rectangle(var22, var15, var19, var8);
- ++var16;
- var22 += var19;
- }
-
- var15 += var8;
- var22 = 0;
- }
-
- try {
- PixelGrabber var23 = new PixelGrabber(var3, 0, 0, this.field_5, this.field_6, this.field_8, 0, this.field_5);
- var23.grabPixels();
- } catch (Exception var20) {
- }
-
- }
- }
-
- // $FF: renamed from: ap () void
- public void method_0() {
- this._$211062();
- this._$220490(-1);
- }
-
- private void _$220490(int var1) {
- int var2 = ((bob14)((bob)this).gd(2)).color;
- int[] var3 = ((bob)this).gd(0).fp;
- int var4 = ((bob)this).gd(0).pw;
- int var5 = ((bob)this).gd(0).ph * var4;
- int[] var6 = ((bob)this).gp();
- int var7 = ((bob)this).gw();
- Rectangle var8 = super.tr.intersection(new Rectangle(0, 0, var7, ((bob)this).gh()));
- Rectangle var9;
- if (var1 < 0) {
- var9 = super.tr.intersection(var8);
- } else {
- Rectangle var10 = new Rectangle(this.field_7[var1]);
- var10.translate(super.tr.x, super.tr.y);
- var9 = var10.intersection(var8);
- }
-
- int var20 = var9.x - super.tr.x + (var9.y - super.tr.y) * super.tr.width;
- int var11 = super.tr.width - var9.width;
- int var12 = (var9.y - super.tr.y) * var4;
- int var13 = var9.x + var9.width;
- int var14 = (var9.y + var9.height) * var7;
-
- for(int var16 = var9.y * var7; var16 < var14; var16 += var7) {
- int var17 = var9.x - super.tr.x;
-
- for(int var18 = var9.x; var18 < var13; ++var18) {
- int var19 = var18 + var16;
- if (this.field_8[var20] == -16777216) {
- int var15;
- if (var17 < var4 && var12 < var5 && (var15 = var3[var17 + var12] & 255) != 255) {
- if (var15 != 0) {
- var6[var19] = (var15 * ((var2 & 16711935) - (var6[var19] & 16711935)) >>> 8) + var6[var19] & 16711935 | (var15 * ((var2 & '\uff00') - (var6[var19] & '\uff00')) >>> 8) + var6[var19] & '\uff00';
- }
- } else {
- var6[var19] = var2;
- }
- }
-
- ++var17;
- ++var20;
- }
-
- var12 += var4;
- var20 += var11;
- }
-
- }
-
- // $FF: renamed from: he (java.awt.Event) void
- public void method_1(Event var1) {
- super.he(var1);
- this._$211062();
- if (var1.id != 6001 && var1.id != 6 && var1.id != 7) {
- if (var1.id == 5) {
- double var8 = (double)0.0F;
- double var4 = (double)0.0F;
-
- for(int var6 = 0; var6 < this.field_4; ++var6) {
- Rectangle var7 = this.field_7[var6];
- var8 = Math.max((double)(var7.x + var7.width), var8);
- var4 = Math.max((double)(var7.y + var7.height), var4);
- }
-
- ((bob)this).ce(new bob13(var8, var4), 1);
- } else if (var1.id == 8) {
- ((bob)this).ce(new bob10((double)this.field_4), 4);
- }
- } else {
- int var2 = (int)((bob10)var1.arg).value - 1;
- if (var2 < 0 || var2 >= this.field_4) {
- return;
- }
-
- if (var1.id == 6001) {
- this._$220490(var2);
- } else if (var1.id == 6) {
- ((bob)this).ce(new bob13((double)(this.field_7[var2].x + super.tr.x), (double)(this.field_7[var2].y + super.tr.y)), 2);
- } else {
- ((bob)this).ce(new bob13((double)this.field_7[var2].width, (double)this.field_7[var2].height), 3);
- }
- }
-
- }
- }
-